#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "free_stimulate_params_page.h"
#include "freestimulatepage.h"

#include <QMainWindow>
#include <QStackedWidget>
#include "serialmanager.h"


QT_BEGIN_NAMESPACE
namespace Ui {class MainWindow;}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

    public:
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();

    private:
        Ui::MainWindow *ui;

        // 页面栈的指针
        QStackedWidget *stackedWidget;

        // 自由刺激页面指针
        FreeStimulatePage *freeStimulatePage;

        // 自由刺激 - 参数设置 页面指针
        free_stimulate_params_page *freeStimulateParamsPage;

        /**
         * @brief 初始化页面
         */
        void initPages();

        /**
         * @brief 设置信号槽
         */
        void setupConnections();

        /**
         * @brief 初始化串口
         */
        void initSerialPort();


    private slots:

        // 进入自由刺激
        void onFreeStimulationClick();

        // 进入自由刺激 - 参数设置
        void onFreeStimulateParamsClick();

        // 自由刺激 - 参数设置 - 返回
        void onFreeStimulateParamsBack();

        // 回到首页
        void onBackToMainPage();

};
#endif // MAINWINDOW_H
